﻿namespace Core.Domain.Lexems
{
    public class Lexem
    {
        /// <summary>  Тип </summary>
        public LexemType Type { get; protected set; }

        /// <summary>  Строковое представление  </summary>
        public string StrValue { get; private set; }

        /// <summary> Позиция в тексте </summary>
        public PositionInText PosInText { get; private set; }

        /// <summary>  Свойство для доступа к методу ToString  </summary>
        public string Data
        {
            get { return ToString(); }
        }

        /// <summary>  Конструктор для целочисленной константы  </summary>
        /// <param name="representation">породившая строка</param>
        /// <param name="posInText">позиция в тексте</param>
        protected Lexem(string representation, PositionInText posInText)
        {
            StrValue = representation;
            PosInText = posInText;
        }

        public override string ToString()
        {
            return "ERROR";
        }
    }
}
